package com.ecr.hub.service.impression.pdf;

import java.util.Date;
import java.util.List;

import com.ecr.hub.ApplicationException;
import com.ecr.hub.model.composition.Composition;
import com.ecr.hub.model.rail.Rail;
import com.ecr.hub.model.sillon.Sillon;
import com.ecr.hub.model.wagon.Wagon;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.pdf.PdfWriter;

public interface IHubPdfCreator {

	// Police pour les phrases.
	public static final Font FONT_TITRE_10 = FontFactory.getFont(
			FontFactory.HELVETICA, 10, Font.NORMAL);
	public static final Font FONT_TITRE_14 = FontFactory.getFont(
			FontFactory.HELVETICA, 14, Font.BOLD);
	public static final Font FONT_TITRE_12 = FontFactory.getFont(
			FontFactory.HELVETICA, 12, Font.BOLD);
	public static final Font FONT_TABLE_HEADER = FontFactory.getFont(
			FontFactory.HELVETICA, 9, Font.NORMAL);
	public static final Font FONT_TABLE_HEADER_BOLD = FontFactory.getFont(
			FontFactory.HELVETICA, 9, Font.BOLD);
	public static final Font FONT_TABLE_CELL = FontFactory.getFont(
			FontFactory.HELVETICA, 9, Font.NORMAL);
	public static final Font FONT_TABLE_CELL_BOLD = FontFactory.getFont(
			FontFactory.HELVETICA, 9, Font.BOLD);

	public static final String ZERO = "0,00";

	// Les méthodes.
	public void pdfDocumentRail(PdfWriter pdfWriter, Document document,
			String realPathImgLogo, List<Wagon> lstWagons, Rail rail)
			throws ApplicationException, DocumentException;

	public void pdfDocumentHub(PdfWriter pdfWriter, Document document,
			String realPathImgLogo, List<Rail> lstRails)
			throws ApplicationException, DocumentException;

	public void pdfDocumentPlanning(PdfWriter pdfWriter, Document document,
			String realPathImgLogo, List<Sillon> lstSillons, Date date,
			Date dateEnd) throws ApplicationException, DocumentException;

	public void pdfDocumentWorkingPlan(PdfWriter pdfWriter, Document document,
			String realPathImgLogo, Sillon sillon,
			List<Composition> lstCompositions) throws ApplicationException,
			DocumentException;

	public void pdfDocumentFormationPlan(PdfWriter pdfWriter,
			Document document, String realPathImgLogo, Sillon sillon,
			List<Composition> lstCompositions) throws ApplicationException,
			DocumentException;

	public void pdfDocumentCompositionPlan(PdfWriter pdfWriter,
			Document document, String realPathImgLogo, Sillon sillon,
			List<Composition> lstCompositions) throws ApplicationException,
			DocumentException;

}
